using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using SystemFrameworks;
using Microsoft.ApplicationBlocks.Data;
using Common; using MinCultura.Sipa.DataAccess.EntidadesArtes;
using SystemFrameworks;

namespace MinCultura.Sipa.EntidadesArtes
{
	/// <summary>
	/// Clase de acceso a datos para la entidad ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS
	/// </summary>
	public class InfraestructuraEntidadesPublicos
	{
		#region Private Data Access Atributes

		private const String INF_ID_PARAM = "@INF_ID";
		private const String INF_NUMERO_FUNCIONES_ANO_PARAM = "@INF_NUMERO_FUNCIONES_ANO";
		private const String INF_NUMERO_ASISTENTES_PREVENTA_PARAM = "@INF_NUMERO_ASISTENTES_PREVENTA";
		private const String INF_NUMERO_ASISTENTES_VENDIDAS_PARAM = "@INF_NUMERO_ASISTENTES_VENDIDAS";
		private const String INF_NUMERO_ASISTENTES_PASES_PARAM = "@INF_NUMERO_ASISTENTES_PASES";
		private const String INF_NUMERO_ASISTENTES_INVITACION_PARAM = "@INF_NUMERO_ASISTENTES_INVITACION";
		private const String INF_NUMERO_ASISTENTES_ANO_PARAM = "@INF_NUMERO_ASISTENTES_ANO";
		private const String INF_PORCENTAJE_OCUPACION_SALA_PARAM = "@INF_PORCENTAJE_OCUPACION_SALA";
		private const String INF_INGRESO_TAQUILLA_PARAM = "@INF_INGRESO_TAQUILLA";
		private const String INF_INGRESO_PATROCINIOS_PRIVADOS_PARAM = "@INF_INGRESO_PATROCINIOS_PRIVADOS";
		private const String INF_INGRESO_PATROCINIOS_PUBLICOS_PARAM = "@INF_INGRESO_PATROCINIOS_PUBLICOS";
		private const String INF_INGRESO_ALQUILERES_PARAM = "@INF_INGRESO_ALQUILERES";
		private const String INF_OTROS_INGRESOS_PARAM = "@INF_OTROS_INGRESOS";
		private const String INF_OTROS_INGRESOS_VALOR_PARAM = "@INF_OTROS_INGRESOS_VALOR";
		private const String INF_INGRESO_ANO_PARAM = "@INF_INGRESO_ANO";
		private const String INF_COSTO_MANTENIMIENTO_PARAM = "@INF_COSTO_MANTENIMIENTO";
		private const String INF_COSTO_SERVICIOS_PARAM = "@INF_COSTO_SERVICIOS";
		private const String INF_COSTO_PERSONAL_PARAM = "@INF_COSTO_PERSONAL";
		private const String INF_COSTO_PUBLICIDAD_PARAM = "@INF_COSTO_PUBLICIDAD";
		private const String INF_COSTO_PRODUCCION_PARAM = "@INF_COSTO_PRODUCCION";
		private const String INF_COSTO_DOTACION_PARAM = "@INF_COSTO_DOTACION";
		private const String INF_COSTO_OTRA_PARAM = "@INF_COSTO_OTRA";
		private const String INF_COSTO_ANO_PARAM = "@INF_COSTO_ANO";
		private const String INF_EJERCICIO_ECONOMICO_PARAM = "@INF_EJERCICIO_ECONOMICO";
		private const String INF_NUMERO_PERSONAL_ADMON_PARAM = "@INF_NUMERO_PERSONAL_ADMON";
		private const String INF_NUMERO_PERSONAL_TECNICO_PARAM = "@INF_NUMERO_PERSONAL_TECNICO";
		private const String INF_NUMERO_PERSONAL_ARTISTICO_PARAM = "@INF_NUMERO_PERSONAL_ARTISTICO";
		private const String INF_COSTO_OTRA_DESCRIPCION_PARAM = "@INF_COSTO_OTRA_DESCRIPCION";

		#endregion Private Data Access Atributes

		/// <summary>
		/// Constructor de la clase ARTINFRAESTRUCTURAENTIDADESPUBLICOS
		/// </summary>
        public InfraestructuraEntidadesPublicos(string strCadenaConecxion)
        {
            ConnectionString = strCadenaConecxion;
        }

        private string _cadenaConexion;

        public string ConnectionString
        {
            get { return _cadenaConexion; }
            set { _cadenaConexion = value; }
        }

		public InfraestructuraEntidadesPublicosData BuscarInfraestructuraEntidadesPublicos()
		{
			InfraestructuraEntidadesPublicosData response = new InfraestructuraEntidadesPublicosData();
			SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_BUSCAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS", response);
			if (response.Rows.Count == 0)
				return null;
			return response;
		}


		public InfraestructuraEntidadesPublicosData ConsultarInfraestructuraEntidadesPublicos(decimal parINF_ID)
		{
			InfraestructuraEntidadesPublicosData response = new InfraestructuraEntidadesPublicosData();

			SqlParameter param1 = new SqlParameter(INF_ID_PARAM, parINF_ID);

			SqlParameter[] parameters = {param1};
			SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_CONSULTAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS", response, parameters);
			if (response.Rows.Count == 0)
				return null;
			return response;
		}

		public void AdicionarInfraestructuraEntidadesPublicos(InfraestructuraEntidadesPublicosData datos, InfraestructuraPoblacionData datosPoblacion)
		{
            InfraestructuraPoblacion objPoblacion = new InfraestructuraPoblacion(ConnectionString);

			SqlConnection objCon = new SqlConnection(this.ConnectionString);
			objCon.Open();
			SqlTransaction objTran = objCon.BeginTransaction(IsolationLevel.Serializable);
			
			try
			{
				decimal decINF_ID = Convert.ToDecimal(datos.Rows[0][InfraestructuraEntidadesPublicosData.INF_ID_FIELD]);

				Adicionar(datos, objTran);
				objPoblacion.AdicionarInfraestructuraPoblacion(datosPoblacion, decINF_ID, objTran);

				objTran.Commit();
			}
			catch (SqlException sqlEx)
			{
				objTran.Rollback();
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), sqlEx);
			}
			catch (Exception ex)
			{
				objTran.Rollback();
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), ex);
			}
			finally
			{
				objCon.Close();
			}
		}

		public void Adicionar(InfraestructuraEntidadesPublicosData datos, InfraestructuraPoblacionData datosPoblacion)
		{
            InfraestructuraPoblacion objPoblacion = new InfraestructuraPoblacion(ConnectionString);		
			try
			{
				decimal decINF_ID = Convert.ToDecimal(datos.Rows[0][InfraestructuraEntidadesPublicosData.INF_ID_FIELD]);

				Adicionar(datos);
				objPoblacion.AdicionarInfraestructuraPoblacion(datosPoblacion, decINF_ID);
			}
			catch (Exception ex)
			{
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), ex);
			}
		}

		public void Adicionar(InfraestructuraEntidadesPublicosData datos, params SqlTransaction[] transaccion)
		{
			try
			{
				foreach (DataRow row in datos.Rows)
				{
					SqlParameter param1 = new SqlParameter(INF_ID_PARAM, row[InfraestructuraEntidadesPublicosData.INF_ID_FIELD]);
					SqlParameter param2 = new SqlParameter(INF_NUMERO_FUNCIONES_ANO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_FUNCIONES_ANO_FIELD]);
					SqlParameter param3 = new SqlParameter(INF_NUMERO_ASISTENTES_PREVENTA_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_PREVENTA_FIELD]);
					SqlParameter param4 = new SqlParameter(INF_NUMERO_ASISTENTES_VENDIDAS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_VENDIDAS_FIELD]);
					SqlParameter param5 = new SqlParameter(INF_NUMERO_ASISTENTES_PASES_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_PASES_FIELD]);
					SqlParameter param6 = new SqlParameter(INF_NUMERO_ASISTENTES_INVITACION_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_INVITACION_FIELD]);
					SqlParameter param7 = new SqlParameter(INF_NUMERO_ASISTENTES_ANO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_ANO_FIELD]);
					SqlParameter param8 = new SqlParameter(INF_PORCENTAJE_OCUPACION_SALA_PARAM, row[InfraestructuraEntidadesPublicosData.INF_PORCENTAJE_OCUPACION_SALA_FIELD]);
					SqlParameter param9 = new SqlParameter(INF_INGRESO_TAQUILLA_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_TAQUILLA_FIELD]);
					SqlParameter param10 = new SqlParameter(INF_INGRESO_PATROCINIOS_PRIVADOS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_PATROCINIOS_PRIVADOS_FIELD]);
					SqlParameter param11 = new SqlParameter(INF_INGRESO_PATROCINIOS_PUBLICOS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_PATROCINIOS_PUBLICOS_FIELD]);
					SqlParameter param12 = new SqlParameter(INF_INGRESO_ALQUILERES_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_ALQUILERES_FIELD]);
					SqlParameter param13 = new SqlParameter(INF_OTROS_INGRESOS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_OTROS_INGRESOS_FIELD]);
					SqlParameter param14 = new SqlParameter(INF_OTROS_INGRESOS_VALOR_PARAM, row[InfraestructuraEntidadesPublicosData.INF_OTROS_INGRESOS_VALOR_FIELD]);
					SqlParameter param15 = new SqlParameter(INF_INGRESO_ANO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_ANO_FIELD]);
					SqlParameter param16 = new SqlParameter(INF_COSTO_MANTENIMIENTO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_MANTENIMIENTO_FIELD]);
					SqlParameter param17 = new SqlParameter(INF_COSTO_SERVICIOS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_SERVICIOS_FIELD]);
					SqlParameter param18 = new SqlParameter(INF_COSTO_PERSONAL_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_PERSONAL_FIELD]);
					SqlParameter param19 = new SqlParameter(INF_COSTO_PUBLICIDAD_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_PUBLICIDAD_FIELD]);
					SqlParameter param20 = new SqlParameter(INF_COSTO_PRODUCCION_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_PRODUCCION_FIELD]);
					SqlParameter param21 = new SqlParameter(INF_COSTO_DOTACION_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_DOTACION_FIELD]);
					SqlParameter param22 = new SqlParameter(INF_COSTO_OTRA_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_OTRA_FIELD]);
					SqlParameter param23 = new SqlParameter(INF_COSTO_ANO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_ANO_FIELD]);
					SqlParameter param24 = new SqlParameter(INF_EJERCICIO_ECONOMICO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_EJERCICIO_ECONOMICO_FIELD]);
					SqlParameter param25 = new SqlParameter(INF_NUMERO_PERSONAL_ADMON_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_PERSONAL_ADMON_FIELD]);
					SqlParameter param26 = new SqlParameter(INF_NUMERO_PERSONAL_TECNICO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_PERSONAL_TECNICO_FIELD]);
					SqlParameter param27 = new SqlParameter(INF_NUMERO_PERSONAL_ARTISTICO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_PERSONAL_ARTISTICO_FIELD]);
					SqlParameter param28 = new SqlParameter(INF_COSTO_OTRA_DESCRIPCION_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_OTRA_DESCRIPCION_FIELD]);

					SqlParameter[] parameters = {param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, 
																				param11, param12, param13, param14, param15, param16, param17, param18, param19, 
																				param20, param21, param22, param23, param24, param25, param26, param27, param28};

					if (transaccion.Length > 0)
					{
						SqlHelper.ExecuteNonQuery(transaccion[0], CommandType.StoredProcedure, "PAS_ADICIONAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS", parameters);
					}
					else
					{
						SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ADICIONAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS", parameters);
					}
				}
			}
			catch (SqlException sqlEx)
			{
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "PAS_ADICIONAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), sqlEx);
			}
			catch (Exception ex)
			{
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), ex);
			}
		}

		public void ActualizarInfraestructuraEntidadesPublicos(InfraestructuraEntidadesPublicosData datos, 
																													InfraestructuraPoblacionData datosPoblacion)
		{
            InfraestructuraPoblacion objPoblacion = new InfraestructuraPoblacion(ConnectionString);

			SqlConnection objCon = new SqlConnection(this.ConnectionString);
			objCon.Open();
			SqlTransaction objTran = objCon.BeginTransaction(IsolationLevel.Serializable);			

			try
			{
				decimal decINF_ID = Convert.ToDecimal(datos.Rows[0][InfraestructuraEntidadesPublicosData.INF_ID_FIELD]);
				Actualizar(datos);
				objPoblacion.ActualizarInfraestructuraPoblacion(datosPoblacion, decINF_ID, objTran);
				objTran.Commit();
			}
			catch (SqlException sqlEx)
			{
				objTran.Rollback();
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), sqlEx);
			}
			catch (Exception ex)
			{
				objTran.Rollback();
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), ex);
			}
			finally
			{
				objCon.Close();
			}
		}

		public void Actualizar(InfraestructuraEntidadesPublicosData datos, InfraestructuraPoblacionData datosPoblacion)
		{
            InfraestructuraPoblacion objPoblacion = new InfraestructuraPoblacion(ConnectionString);
			try
			{
				decimal decINF_ID = Convert.ToDecimal(datos.Rows[0][InfraestructuraEntidadesPublicosData.INF_ID_FIELD]);
				Actualizar(datos);
				objPoblacion.ActualizarInfraestructuraPoblacion(datosPoblacion, decINF_ID);
			}
			catch (Exception ex)
			{
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), ex);
			}
		}

		private void Actualizar(InfraestructuraEntidadesPublicosData datos, params SqlTransaction[] transaccion)
		{
			try
			{
				foreach (DataRow row in datos.Rows)
				{
					SqlParameter param1 = new SqlParameter(INF_ID_PARAM, row[InfraestructuraEntidadesPublicosData.INF_ID_FIELD]);
					SqlParameter param2 = new SqlParameter(INF_NUMERO_FUNCIONES_ANO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_FUNCIONES_ANO_FIELD]);
					SqlParameter param3 = new SqlParameter(INF_NUMERO_ASISTENTES_PREVENTA_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_PREVENTA_FIELD]);
					SqlParameter param4 = new SqlParameter(INF_NUMERO_ASISTENTES_VENDIDAS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_VENDIDAS_FIELD]);
					SqlParameter param5 = new SqlParameter(INF_NUMERO_ASISTENTES_PASES_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_PASES_FIELD]);
					SqlParameter param6 = new SqlParameter(INF_NUMERO_ASISTENTES_INVITACION_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_INVITACION_FIELD]);
					SqlParameter param7 = new SqlParameter(INF_NUMERO_ASISTENTES_ANO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_ASISTENTES_ANO_FIELD]);
					SqlParameter param8 = new SqlParameter(INF_PORCENTAJE_OCUPACION_SALA_PARAM, row[InfraestructuraEntidadesPublicosData.INF_PORCENTAJE_OCUPACION_SALA_FIELD]);
					SqlParameter param9 = new SqlParameter(INF_INGRESO_TAQUILLA_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_TAQUILLA_FIELD]);
					SqlParameter param10 = new SqlParameter(INF_INGRESO_PATROCINIOS_PRIVADOS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_PATROCINIOS_PRIVADOS_FIELD]);
					SqlParameter param11 = new SqlParameter(INF_INGRESO_PATROCINIOS_PUBLICOS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_PATROCINIOS_PUBLICOS_FIELD]);
					SqlParameter param12 = new SqlParameter(INF_INGRESO_ALQUILERES_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_ALQUILERES_FIELD]);
					SqlParameter param13 = new SqlParameter(INF_OTROS_INGRESOS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_OTROS_INGRESOS_FIELD]);
					SqlParameter param14 = new SqlParameter(INF_OTROS_INGRESOS_VALOR_PARAM, row[InfraestructuraEntidadesPublicosData.INF_OTROS_INGRESOS_VALOR_FIELD]);
					SqlParameter param15 = new SqlParameter(INF_INGRESO_ANO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_INGRESO_ANO_FIELD]);
					SqlParameter param16 = new SqlParameter(INF_COSTO_MANTENIMIENTO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_MANTENIMIENTO_FIELD]);
					SqlParameter param17 = new SqlParameter(INF_COSTO_SERVICIOS_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_SERVICIOS_FIELD]);
					SqlParameter param18 = new SqlParameter(INF_COSTO_PERSONAL_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_PERSONAL_FIELD]);
					SqlParameter param19 = new SqlParameter(INF_COSTO_PUBLICIDAD_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_PUBLICIDAD_FIELD]);
					SqlParameter param20 = new SqlParameter(INF_COSTO_PRODUCCION_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_PRODUCCION_FIELD]);
					SqlParameter param21 = new SqlParameter(INF_COSTO_DOTACION_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_DOTACION_FIELD]);
					SqlParameter param22 = new SqlParameter(INF_COSTO_OTRA_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_OTRA_FIELD]);
					SqlParameter param23 = new SqlParameter(INF_COSTO_ANO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_ANO_FIELD]);
					SqlParameter param24 = new SqlParameter(INF_EJERCICIO_ECONOMICO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_EJERCICIO_ECONOMICO_FIELD]);
					SqlParameter param25 = new SqlParameter(INF_NUMERO_PERSONAL_ADMON_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_PERSONAL_ADMON_FIELD]);
					SqlParameter param26 = new SqlParameter(INF_NUMERO_PERSONAL_TECNICO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_PERSONAL_TECNICO_FIELD]);
					SqlParameter param27 = new SqlParameter(INF_NUMERO_PERSONAL_ARTISTICO_PARAM, row[InfraestructuraEntidadesPublicosData.INF_NUMERO_PERSONAL_ARTISTICO_FIELD]);
					SqlParameter param28 = new SqlParameter(INF_COSTO_OTRA_DESCRIPCION_PARAM, row[InfraestructuraEntidadesPublicosData.INF_COSTO_OTRA_DESCRIPCION_FIELD]);

					SqlParameter[] parameters = {param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, param21, param22, param23, param24, param25, param26, param27, param28};
					if (transaccion.Length > 0)
					{
						SqlHelper.ExecuteNonQuery(transaccion[0], CommandType.StoredProcedure, "PAS_ACTUALIZAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS", parameters);
					}
					else
					{
						SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ACTUALIZAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS", parameters);
					}
				}
			}
			catch (SqlException sqlEx)
			{
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "PAS_ACTUALIZAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), sqlEx);
			}
			catch (Exception ex)
			{
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorActualizar", "PAS_ACTUALIZAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), ex);
			}
		}

		/// <summary>
		/// Elimina un registro de la entidad Artinfraestructuraentidadespublicos
		/// </summary>
		/// <param name="parINF_ID">Identificador del registro
		public void EliminarInfraestructuraEntidadesPublicos(decimal parINF_ID)
		{
			try
			{
				SqlParameter param1 = new SqlParameter(INF_ID_PARAM, parINF_ID);

				SqlParameter[] parameters = {param1};
				SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS", parameters);
			}
			catch (SqlException sqlEx)
			{
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), sqlEx);
			}
			catch (Exception ex)
			{
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), ex);
			}
		}

		public void EliminarInfraestructuraEntidadesPublicos(ArrayList arrIDs)
		{
			SqlConnection objConnection = new SqlConnection(ConnectionString);
			objConnection.Open();
			SqlTransaction objTrans = objConnection.BeginTransaction();

			try
			{
				foreach (object Item in arrIDs)
				{
					SqlParameter param1 = new SqlParameter(INF_ID_PARAM, decimal.Parse(Item.ToString()));
					SqlParameter[] parameters = {param1};
					SqlHelper.ExecuteNonQuery(objTrans, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS", parameters);
				}
				objTrans.Commit();
			}
			catch (SqlException sqlEx)
			{
				objTrans.Rollback();
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), sqlEx);
			}
			catch (Exception ex)
			{
				objTrans.Rollback();
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"), ex);
			}
			finally
			{
				objConnection.Close();
			}
		}

		/*
		public void CambiarEstado(string strIds, string strEstado)
		{
			try
			{	
				SqlParameter param1 = new SqlParameter(STR_ID_PARAM,strIds );
				SqlParameter param2 = new SqlParameter(CAMPO_ESTADO_PARAM,strEstado);
				SqlParameter[] parameters = {param1,param2};					
				SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_CAMBIAR_ESTADO_ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS", parameters);
			}
			catch (SqlException sqlEx)
			{						 
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx,"ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS"),sqlEx); 
			}
			catch (Exception ex)
			{				 
				if (strEstado.Equals(SinicConfigurationAdm.EstadoActivo))
				{
					throw new ApplicationExceptionManager (Utilidad.TraerMensaje("gmsgAprobarRegistrosExitoso", "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS")); 
				}
				else
				{
					throw new ApplicationExceptionManager (Utilidad.TraerMensaje("gmsgDesaprobarRegistrosExitoso", "ART_INFRAESTRUCTURA_ENTIDADES_PUBLICOS")); 
				}
			}			
		}
		*/

	}
}